/**
 * 精确执行乘法运算，保留指定的小数位数。
 *
 * @param {number|string} num1 - 第一个乘数。
 * @param {number|string} num2 - 第二个乘数。
 * @param {number} decimalPlaces - 结果应保留的小数位数。
 * @return {number} 返回保留指定小数位数的乘法结果。
 * @throws {Error} 如果输入的数字格式无效，将抛出错误。
 */
function preciseMultiply(num1, num2, decimalPlaces) {
    // 将两个数转换为数字类型
    num1 = parseFloat(num1);
    num2 = parseFloat(num2);

    // 检查转换后的结果是否为NaN，如果是则抛出错误
    if (isNaN(num1) || isNaN(num2)) {
        return 0
    }

    var baseNum = 0;
    try {
        baseNum += num1.toString().split(".")[1].length;
    } catch (e) {
    }
    try {
        baseNum += num2.toString().split(".")[1].length;
    } catch (e) {
    }
    var result = Number(num1.toString().replace(".", "")) * Number(num2.toString().replace(".", "")) / Math.pow(10, baseNum);
    // 返回保留指定位数小数的结果
    return parseFloat(result.toFixed(decimalPlaces));
}